import { Component } from '@angular/core';
import { AdatokService } from '../adatok.service';
import { map } from 'rxjs';
import { FormControl, FormGroup } from '@angular/forms';

@Component({
  selector: 'app-kereses',
  templateUrl: './kereses.component.html',
  styleUrls: ['./kereses.component.css']
})

export class KeresesComponent {

  visszajottAdat:any[]=[];

  talalatTomb:any[]=[];

  constructor(private db:AdatokService){}

  /***********************************/
  /********* Lekérőfüggvény **********/
  /***********************************/
  leker(): void {
    this.db.getAllAdatok().snapshotChanges().pipe(
      map(changes =>
        changes.map(c =>
          ({ key: c.payload.key, ...c.payload.val() })
        )
      )
    ).subscribe(
                  {
                    next: (data:any):void => {
                                                this.talalatTomb.length=0/*Hardreset*/;
                                                this.visszajottAdat = data; this.listaz();
                                                console.log("találatTömb:",this.talalatTomb);
                                              },
                    error: (err:any):void => {console.log("Adatlekérés ERROR.");},
                    complete:():void => { console.log("Adatlekérés COMPLETE."); }
                  }
              );
  }

  /***********************************/
  /************* Listázás ************/
  /***********************************/

  amibenKesek:any;
  keresesEredmenye:any;

  listaz():void{

    this.visszajottAdat.forEach(
                                  (egysor:any):void => {

                                                      // Amiben majd keresünk.
                                                      if(this.myform.value.mibenkeres=="tipus") {
                                                        this.amibenKesek = egysor.tipus;
                                                      }
                                                      else if(this.myform.value.mibenkeres=="maxVolt") {
                                                        this.amibenKesek = egysor.maxVolt;
                                                      }
                                                      else if(this.myform.value.mibenkeres=="maxAmper") {
                                                        this.amibenKesek = egysor.maxAmper;
                                                      }
                                                      



                                                      this.keresesEredmenye = this.amibenKesek.match( new RegExp(this.myform.value.szoveg,"i") );

                                                      if ( this.keresesEredmenye==null ) {
                                                        ;
                                                      }
                                                      else {
                                                        this.talalatTomb.push(egysor);
                                                      }
                                                    }
                              );
  }


  /***************************************************************************/
  /********************************** Keresés ********************************/
  /***************************************************************************/
  myform:FormGroup<any>= new FormGroup({
    szoveg: new FormControl(''),
    mibenkeres: new FormControl('tipus')
  });
  
  keres(keressendoSzoveg:any, mibenkeres:any){
    this.leker();
  }

}
